// import com.alibaba.druid.sql.ast.statement.SQLTableSource;
// import com.alibaba.druid.sql.parser.SQLExprParser;
// import com.alibaba.druid.sql.parser.SQLSelectListCache;
// import com.alibaba.druid.sql.parser.SQLSelectParser;
#pragma once
#include "../../../parser/SQLSelectParser.h"
#include "../../../../utils/common_ptr.h"

class HiveSelectParser : public SQLSelectParser
{
public:
  HiveSelectParser(SQLExprParser_ptr exprParser);

  HiveSelectParser(SQLExprParser_ptr exprParser, SQLSelectListCache_ptr selectListCache);

  HiveSelectParser(string_ptr sql);

  SQLExprParser_ptr createExprParser();

  void parseTableSourceSample(SQLTableSource_ptr tableSource);
};
